Real time tempo detection in a music-playing computer application allows the application to coordinate its display such that the application can respond to the audio input. For example, in response to a musical input, an application can generate three-dimensional (3D) graphical display of dancers dancing to the rhythm of the music. In addition, the application can arrange pulsation of lights in response to the rhythm of the music.
However, prior personal computer systems do not provide real time tempo detection. The major obstacle faced by developers of real-time tempo detection techniques is inefficiency. Due to the large amount of processing required by prior art methods, a personal computer running a prior art tempo detection method in the background cannot run another application, e.g. 3D graphical display, in the foreground at the same time. The central processing unit (CPU) of the computer is "hogged" by the tempo detection algorithm. Reducing the sampling rate of prior tempo detection methods does not solve the problem because it causes the result to be inaccurate and unreliable. Thus, computer applications cannot incorporate prior tempo detection methods to enhance the audio and visual effects. An efficient method for real time tempo detection, without compromising the accuracy, is highly desirable.